{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-template-rendering-core",
      "artifactVersion": "2023.13.9",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.template.manager",
          "org.nuxeo.template.manager.api",
          "org.nuxeo.template.manager.jaxrs",
          "org.nuxeo.template.manager.jxls",
          "org.nuxeo.template.manager.xdocreport"
        ],
        "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template",
        "id": "grp:org.nuxeo.template",
        "name": "org.nuxeo.template",
        "parentIds": [
          "grp:org.nuxeo.template.rendering"
        ],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "\n# Nuxeo Template Rendering\n\n## About Nuxeo Template Rendering\n The Nuxeo Template Rendering is a set of plugins that provides a way to associate a Nuxeo Document with a Template. The Templates are used to render the associated document. Depending on the Template type, a different Template Processor will be used and the resulting rendering can be :\n\n   * an HTML document\n   * an XML document\n   * an OpenOffice document\n   * an MS Office document\n\n\nEach template processor has his own logic for rendering a Document from a Template :\n\n   * raw processing (FreeMarker or XSLT)\n   * merge fields replacement (MS Office / OpenOffice)\n\nThis project is an on-going project, supported by Nuxeo.\n\n## Sub-modules organization\nThe project is splitted in several sub modules :\n\n**nuxeo-template-rendering-api**\n\nAPI module containing all interfaces.\n\n**nuxeo-template-rendering-core**\n\nComponent, extension points and service implementation. This modules only contains template processors for FreeMarker and XSLT.\n\n**nuxeo-template-rendering-jsf**\n\nContribute UI level extensions: Layouts, Widgets, Views, Url bindings ...\n\n**nuxeo-template-rendering-xdocreport**\n\nContribute the OpenOffice / DocX processor based on XDocReport. This is by far the most powerfull processor.\nSee: http://code.google.com/p/xdocreport/\n\n**nuxeo-template-rendering-jxls**\n\nContribute a template processor for XLS files based on JXLS project. See: http://jxls.sourceforge.net/\n\n**nuxeo-template-rendering-jod**\n\nContribute JOD Report based template processor for ODT files. This renderer is historical and replaced by xdocreport that is more powerful.\n\n**nuxeo-template-rendering-jaxrs**\n\nContribute a JAXRS simple API as well as a new WebTemplate doc type that is based on a Note rather than a file.\n\n**nuxeo-template-rendering-sandbox**\n\nMisc code and extensions that are currently experimental.\n\n**nuxeo-template-rendering-package**\n\nBuilder for marketplace package.\n\n## Building\n\n### How to build Nuxeo Template Rendering\nBuild the Nuxeo Template Rendering add-on with Maven:\n\n```mvn clean install```\n\n## Deploying\nNuxeo Template Rendering is available as a package add-on [from the Nuxeo Marketplace] (https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-template-rendering)\n\n## Resources\n### Documentation\nThe documentation for Nuxeo Template Rendering is available in our Documentation Center: http://doc.nuxeo.com/x/9YSo\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes a Template Rendering component: https://jira.nuxeo.com/browse/NXP/component/11405\n\nYou can report issues on: http://answers.nuxeo.com/\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "e9e176463318c286d8f00955de4c43a2",
            "encoding": "UTF-8",
            "length": 3344,
            "mimeType": "text/plain",
            "name": "ReadMe.md"
          }
        ],
        "version": "2023.13"
      },
      "bundleId": "org.nuxeo.template.manager",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.doctypes/Contributions/org.nuxeo.platform.TemplateSources.doctypes--schema",
              "id": "org.nuxeo.platform.TemplateSources.doctypes--schema",
              "registrationOrder": 54,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"documenttemplate\" prefix=\"tmpl\" src=\"schemas/documenttemplate.xsd\"/>\n    <schema name=\"templatesupport\" prefix=\"nxts\" src=\"schemas/templatesupport.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.doctypes/Contributions/org.nuxeo.platform.TemplateSources.doctypes--doctype",
              "id": "org.nuxeo.platform.TemplateSources.doctypes--doctype",
              "registrationOrder": 51,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"Template\"/>\n\n    <facet name=\"TemplateBased\">\n      <schema name=\"templatesupport\"/>\n    </facet>\n\n    <doctype extends=\"Document\" name=\"TemplateSource\">\n      <schema name=\"common\"/>\n      <schema name=\"file\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"uid\"/>\n      <schema name=\"documenttemplate\"/>\n      <facet name=\"Downloadable\"/>\n      <facet name=\"Versionable\"/>\n      <facet name=\"Commentable\"/>\n      <facet name=\"HasRelatedText\"/>\n      <facet name=\"Template\"/>\n    </doctype>\n\n    <doctype extends=\"File\" name=\"TemplateBasedFile\">\n      <facet name=\"TemplateBased\"/>\n    </doctype>\n\n    <doctype append=\"true\" name=\"Folder\">\n      <subtypes>\n        <type>TemplateSource</type>\n      </subtypes>\n    </doctype>\n    <doctype append=\"true\" name=\"Workspace\">\n      <subtypes>\n        <type>TemplateSource</type>\n      </subtypes>\n    </doctype>\n    <doctype append=\"true\" name=\"TemplateRoot\">\n      <subtypes>\n        <type>TemplateSource</type>\n      </subtypes>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.doctypes",
          "name": "org.nuxeo.platform.TemplateSources.doctypes",
          "requirements": [
            "org.nuxeo.ecm.core.CoreExtensions"
          ],
          "resolutionOrder": 861,
          "services": [],
          "startOrder": 689,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.doctypes\">\n\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"documenttemplate\" src=\"schemas/documenttemplate.xsd\"\n      prefix=\"tmpl\" />\n    <schema name=\"templatesupport\" src=\"schemas/templatesupport.xsd\"\n      prefix=\"nxts\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n\n    <facet name=\"Template\" />\n\n    <facet name=\"TemplateBased\">\n      <schema name=\"templatesupport\" />\n    </facet>\n\n    <doctype name=\"TemplateSource\" extends=\"Document\">\n      <schema name=\"common\"/>\n      <schema name=\"file\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"uid\"/>\n      <schema name=\"documenttemplate\" />\n      <facet name=\"Downloadable\"/>\n      <facet name=\"Versionable\"/>\n      <facet name=\"Commentable\"/>\n      <facet name=\"HasRelatedText\"/>\n      <facet name=\"Template\" />\n    </doctype>\n\n    <doctype name=\"TemplateBasedFile\" extends=\"File\">\n      <facet name=\"TemplateBased\" />\n    </doctype>\n\n    <doctype name=\"Folder\" append=\"true\">\n      <subtypes>\n        <type>TemplateSource</type>\n      </subtypes>\n    </doctype>\n    <doctype name=\"Workspace\" append=\"true\">\n      <subtypes>\n        <type>TemplateSource</type>\n      </subtypes>\n    </doctype>\n    <doctype name=\"TemplateRoot\" append=\"true\">\n      <subtypes>\n        <type>TemplateSource</type>\n      </subtypes>\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.types.TypeService--types",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.types.contrib/Contributions/org.nuxeo.platform.TemplateSources.types.contrib--types",
              "id": "org.nuxeo.platform.TemplateSources.types.contrib--types",
              "registrationOrder": 11,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.types.TypeService",
                "name": "org.nuxeo.ecm.platform.types.TypeService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.platform.types.TypeService\">\n\n    <type coretype=\"TemplateSource\" id=\"TemplateSource\">\n      <label>TemplateSource</label>\n      <icon>/icons/sourcetemplate.png</icon>\n      <bigIcon>/icons/sourcetemplate_100.png</bigIcon>\n      <default-view>view_documents</default-view>\n      <category>SimpleDocument</category>\n     <layouts mode=\"create\">\n       <layout>heading</layout>\n       <layout>templateOptionsWizard</layout>\n       <layout>templateOptions</layout>\n       <layout>fileWithoutTemplate</layout>\n      </layouts>\n      <layouts mode=\"view\">\n        <layout>heading</layout>\n        <layout>templateOptions</layout>\n        <layout>templateParams</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>heading</layout>\n        <!-- <layout>templateOptions</layout>  -->\n        <layout>fileWithoutTemplate</layout>\n      </layouts>\n    </type>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.types.contrib",
          "name": "org.nuxeo.platform.TemplateSources.types.contrib",
          "requirements": [],
          "resolutionOrder": 862,
          "services": [],
          "startOrder": 699,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.types.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.types.TypeService\"\n    point=\"types\">\n\n    <type id=\"TemplateSource\" coretype=\"TemplateSource\">\n      <label>TemplateSource</label>\n      <icon>/icons/sourcetemplate.png</icon>\n      <bigIcon>/icons/sourcetemplate_100.png</bigIcon>\n      <default-view>view_documents</default-view>\n      <category>SimpleDocument</category>\n     <layouts mode=\"create\">\n       <layout>heading</layout>\n       <layout>templateOptionsWizard</layout>\n       <layout>templateOptions</layout>\n       <layout>fileWithoutTemplate</layout>\n      </layouts>\n      <layouts mode=\"view\">\n        <layout>heading</layout>\n        <layout>templateOptions</layout>\n        <layout>templateParams</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>heading</layout>\n        <!-- <layout>templateOptions</layout>  -->\n        <layout>fileWithoutTemplate</layout>\n      </layouts>\n    </type>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.lifecycle.LifeCycleService--types",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.lifecycle.contrib/Contributions/org.nuxeo.platform.TemplateSources.lifecycle.contrib--types",
              "id": "org.nuxeo.platform.TemplateSources.lifecycle.contrib--types",
              "registrationOrder": 20,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "name": "org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\">\n    <types>\n      <type name=\"TemplateSource\">default</type>\n      <type name=\"TemplateBasedFile\">default</type>\n    </types>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.lifecycle.contrib",
          "name": "org.nuxeo.platform.TemplateSources.lifecycle.contrib",
          "requirements": [],
          "resolutionOrder": 863,
          "services": [],
          "startOrder": 693,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.lifecycle.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\"\n    point=\"types\">\n    <types>\n      <type name=\"TemplateSource\">default</type>\n      <type name=\"TemplateBasedFile\">default</type>\n    </types>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/life-cycle-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.template.service.TemplateProcessorComponent",
          "documentation": "\n    Template processor service that is used to configure DocumentModel\n    rendering via template (ex: merge DocumentModel with a MSWord or\n    OpenOffice template file).\n\n    <p>It support an ExtensionPoint to contribute template\n      processors.</p>\n\n\n    @version 1.0\n    @author\n    <a href=\"mailto:tdelprat@nuxeo.com\">Tiry</a>\n",
          "documentationHtml": "<p>\nTemplate processor service that is used to configure DocumentModel\nrendering via template (ex: merge DocumentModel with a MSWord or\nOpenOffice template file).\n</p><p>\n</p><p>It support an ExtensionPoint to contribute template\nprocessors.</p>\n<p>\n&#64;version 1.0\n</p><p>\n<a href=\"mailto:tdelprat&#64;nuxeo.com\">Tiry</a></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.template.service.TemplateProcessorComponent",
              "descriptors": [
                "org.nuxeo.template.api.descriptor.TemplateProcessorDescriptor"
              ],
              "documentation": "<p>\n      Extension allowing one to register a new TemplateProcessor.\n      </p>\n<p>\n\n      A TemplateProcessor is a class associated with a format (mime-type or\n      extension) and that can be used to render a DocumentModel via type\n      type of template.\n\n      For instance :\n      </p>\n<code>\n    <templateProcessor\n        class=\"org.nuxeo.template.processors.xdocreport.XDocReportProcessor\"\n        default=\"true\" label=\"XDocReport processor\" name=\"XDocReportProcessor\">\n        <supportedMimeType>application/vnd.oasis.opendocument.text</supportedMimeType>\n        <supportedMimeType>application/vnd.openxmlformats-officedocument.wordprocessingml.document</supportedMimeType>\n        <supportedExtension>odt</supportedExtension>\n        <supportedExtension>docx</supportedExtension>\n    </templateProcessor>\n</code>\n",
              "documentationHtml": "<p>\n</p><p>\nExtension allowing one to register a new TemplateProcessor.\n</p>\n<p>\n</p><p>\nA TemplateProcessor is a class associated with a format (mime-type or\nextension) and that can be used to render a DocumentModel via type\ntype of template.\n</p><p>\nFor instance :\n</p>\n<p></p><pre><code>    &lt;templateProcessor\n        class&#61;&#34;org.nuxeo.template.processors.xdocreport.XDocReportProcessor&#34;\n        default&#61;&#34;true&#34; label&#61;&#34;XDocReport processor&#34; name&#61;&#34;XDocReportProcessor&#34;&gt;\n        &lt;supportedMimeType&gt;application/vnd.oasis.opendocument.text&lt;/supportedMimeType&gt;\n        &lt;supportedMimeType&gt;application/vnd.openxmlformats-officedocument.wordprocessingml.document&lt;/supportedMimeType&gt;\n        &lt;supportedExtension&gt;odt&lt;/supportedExtension&gt;\n        &lt;supportedExtension&gt;docx&lt;/supportedExtension&gt;\n    &lt;/templateProcessor&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.TemplateProcessorComponent/ExtensionPoints/org.nuxeo.template.service.TemplateProcessorComponent--processor",
              "id": "org.nuxeo.template.service.TemplateProcessorComponent--processor",
              "label": "processor (org.nuxeo.template.service.TemplateProcessorComponent)",
              "name": "processor",
              "version": "2023.13.9"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.template.service.TemplateProcessorComponent",
              "descriptors": [
                "org.nuxeo.template.api.descriptor.ContextExtensionFactoryDescriptor"
              ],
              "documentation": "<p>\n      Extension allowing to register a new ContentExtensionFactory that will be used to add custom objects inside the rendering context.\n      </p>\n<code/>\n",
              "documentationHtml": "<p>\n</p><p>\nExtension allowing to register a new ContentExtensionFactory that will be used to add custom objects inside the rendering context.\n</p>\n<code></code>",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.TemplateProcessorComponent/ExtensionPoints/org.nuxeo.template.service.TemplateProcessorComponent--contextExtension",
              "id": "org.nuxeo.template.service.TemplateProcessorComponent--contextExtension",
              "label": "contextExtension (org.nuxeo.template.service.TemplateProcessorComponent)",
              "name": "contextExtension",
              "version": "2023.13.9"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.template.service.TemplateProcessorComponent",
              "descriptors": [
                "org.nuxeo.template.api.descriptor.OutputFormatDescriptor"
              ],
              "documentation": "<p>\n        Extension allowing to register a output formats for rendered template. If no\n        chainId is specified, the ConvertBlob operation will be called with\n        the mime-type as parameter.\n      </p>\n<code>\n    <outputFormat id=\"doc\" label=\"DOC\" mimetype=\"application/msword\"/>\n    <outputFormat chainId=\"deckJs2PDF\" id=\"deckJsToPDF\"\n        label=\"PDF (from DeckJS)\" mimetype=\"application/pdf\"/>\n</code>\n",
              "documentationHtml": "<p>\n</p><p>\nExtension allowing to register a output formats for rendered template. If no\nchainId is specified, the ConvertBlob operation will be called with\nthe mime-type as parameter.\n</p>\n<p></p><pre><code>    &lt;outputFormat id&#61;&#34;doc&#34; label&#61;&#34;DOC&#34; mimetype&#61;&#34;application/msword&#34;/&gt;\n    &lt;outputFormat chainId&#61;&#34;deckJs2PDF&#34; id&#61;&#34;deckJsToPDF&#34;\n        label&#61;&#34;PDF (from DeckJS)&#34; mimetype&#61;&#34;application/pdf&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.TemplateProcessorComponent/ExtensionPoints/org.nuxeo.template.service.TemplateProcessorComponent--outputFormat",
              "id": "org.nuxeo.template.service.TemplateProcessorComponent--outputFormat",
              "label": "outputFormat (org.nuxeo.template.service.TemplateProcessorComponent)",
              "name": "outputFormat",
              "version": "2023.13.9"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.TemplateProcessorComponent",
          "name": "org.nuxeo.template.service.TemplateProcessorComponent",
          "requirements": [],
          "resolutionOrder": 864,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.template.service.TemplateProcessorComponent",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.TemplateProcessorComponent/Services/org.nuxeo.template.api.TemplateProcessorService",
              "id": "org.nuxeo.template.api.TemplateProcessorService",
              "overriden": false,
              "version": "2023.13.9"
            }
          ],
          "startOrder": 933,
          "version": "2023.13.9",
          "xmlFileContent": "<component name=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n  <documentation>\n    Template processor service that is used to configure DocumentModel\n    rendering via template (ex: merge DocumentModel with a MSWord or\n    OpenOffice template file).\n\n    <p>It support an ExtensionPoint to contribute template\n      processors.</p>\n\n    @version 1.0\n    @author\n    <a href=\"mailto:tdelprat@nuxeo.com\">Tiry</a>\n  </documentation>\n\n  <implementation class=\"org.nuxeo.template.service.TemplateProcessorComponent\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.template.api.TemplateProcessorService\" />\n  </service>\n\n  <extension-point name=\"processor\">\n\n    <documentation>\n\n      <p>\n      Extension allowing one to register a new TemplateProcessor.\n      </p>\n      <p>\n\n      A TemplateProcessor is a class associated with a format (mime-type or\n      extension) and that can be used to render a DocumentModel via type\n      type of template.\n\n      For instance :\n      </p>\n\n      <code>\n        <templateProcessor name=\"XDocReportProcessor\"\n          label=\"XDocReport processor\" default=\"true\"\n          class=\"org.nuxeo.template.processors.xdocreport.XDocReportProcessor\">\n          <supportedMimeType>application/vnd.oasis.opendocument.text</supportedMimeType>\n          <supportedMimeType>application/vnd.openxmlformats-officedocument.wordprocessingml.document</supportedMimeType>\n          <supportedExtension>odt</supportedExtension>\n          <supportedExtension>docx</supportedExtension>\n        </templateProcessor>\n\n      </code>\n\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.template.api.descriptor.TemplateProcessorDescriptor\" />\n\n  </extension-point>\n\n\n  <extension-point name=\"contextExtension\">\n\n    <documentation>\n\n      <p>\n      Extension allowing to register a new ContentExtensionFactory that will be used to add custom objects inside the rendering context.\n      </p>\n\n      <code>\n\n\n      </code>\n\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.template.api.descriptor.ContextExtensionFactoryDescriptor\" />\n\n  </extension-point>\n\n\n  <extension-point name=\"outputFormat\">\n\n    <documentation>\n      <p>\n        Extension allowing to register a output formats for rendered template. If no\n        chainId is specified, the ConvertBlob operation will be called with\n        the mime-type as parameter.\n      </p>\n      <code>\n        <outputFormat id=\"doc\" label=\"DOC\" mimetype=\"application/msword\"/>\n        <outputFormat id=\"deckJsToPDF\" label=\"PDF (from DeckJS)\" chainId=\"deckJs2PDF\" mimetype=\"application/pdf\"/>\n      </code>\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.template.api.descriptor.OutputFormatDescriptor\" />\n\n  </extension-point>\n\n</component>",
          "xmlFileName": "/OSGI-INF/templateprocessor-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "Freemarker based template processor\n",
              "documentationHtml": "<p>\nFreemarker based template processor</p>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--processor",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--processor",
              "id": "org.nuxeo.template.service.defaultContrib--processor",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"processor\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>Freemarker based template processor</documentation>\n\n    <templateProcessor class=\"org.nuxeo.template.processors.fm.FreeMarkerProcessor\" default=\"false\" label=\"Raw Freemarker\" name=\"Freemarker\">\n      <supportedMimeType>text/x-freemarker</supportedMimeType>\n      <supportedExtension>ftl</supportedExtension>\n    </templateProcessor>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "XSLT template processor\n",
              "documentationHtml": "<p>\nXSLT template processor</p>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--processor",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--processor1",
              "id": "org.nuxeo.template.service.defaultContrib--processor1",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"processor\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>XSLT template processor</documentation>\n\n    <templateProcessor class=\"org.nuxeo.template.processors.xslt.XSLTProcessor\" default=\"false\" label=\"Raw XSLT Processor\" name=\"XSLTProcessor\">\n      <supportedMimeType>text/xml</supportedMimeType>\n      <supportedExtension>xml</supportedExtension>\n      <supportedExtension>xsl</supportedExtension>\n      <supportedExtension>xslt</supportedExtension>\n    </templateProcessor>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "Identity processor\n",
              "documentationHtml": "<p>\nIdentity processor</p>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--processor",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--processor2",
              "id": "org.nuxeo.template.service.defaultContrib--processor2",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"processor\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>Identity processor</documentation>\n\n    <templateProcessor class=\"org.nuxeo.template.processors.IdentityProcessor\" default=\"false\" label=\"Identity\" name=\"Identity\">\n    </templateProcessor>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Adds utility functions in the context\n      <ul>\n    <li>functions.getVocabularyTranslatedLabel(vocname, key, lang)</li>\n    <li>functions.getVocabularyLabel(vocname, key)</li>\n    <li>functions.getVocabularyLabel(vocname, key)</li>\n    <li>functions.formatDate(calendar)</li>\n    <li>functions.formatDateTime(calendar)</li>\n    <li>functions.formatTime(calendar)</li>\n    <li>functions.getNuxeoPrincipal(username)</li>\n</ul>\n",
              "documentationHtml": "<p>\nAdds utility functions in the context\n</p><ul><li>functions.getVocabularyTranslatedLabel(vocname, key, lang)</li><li>functions.getVocabularyLabel(vocname, key)</li><li>functions.getVocabularyLabel(vocname, key)</li><li>functions.formatDate(calendar)</li><li>functions.formatDateTime(calendar)</li><li>functions.formatTime(calendar)</li><li>functions.getNuxeoPrincipal(username)</li></ul>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--contextExtension",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--contextExtension",
              "id": "org.nuxeo.template.service.defaultContrib--contextExtension",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"contextExtension\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>\n      Adds utility functions in the context\n      <ul>\n        <li>functions.getVocabularyTranslatedLabel(vocname, key, lang)</li>\n        <li>functions.getVocabularyLabel(vocname, key)</li>\n        <li>functions.getVocabularyLabel(vocname, key)</li>\n        <li>functions.formatDate(calendar)</li>\n        <li>functions.formatDateTime(calendar)</li>\n        <li>functions.formatTime(calendar)</li>\n        <li>functions.getNuxeoPrincipal(username)</li>\n      </ul>\n    </documentation>\n\n    <contextFactory class=\"org.nuxeo.template.context.extensions.FunctionsExtensionFactory\" name=\"functions\">\n     <aliasName>fn</aliasName>\n     <aliasName>Fn</aliasName>\n    </contextFactory>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "Adds audit infos in the context\n      <ul>\n    <li>auditEntries</li>\n</ul>\n",
              "documentationHtml": "<p>\nAdds audit infos in the context\n</p><ul><li>auditEntries</li></ul>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--contextExtension",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--contextExtension1",
              "id": "org.nuxeo.template.service.defaultContrib--contextExtension1",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"contextExtension\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>Adds audit infos in the context\n      <ul>\n        <li>auditEntries</li>\n      </ul>\n    </documentation>\n\n    <contextFactory class=\"org.nuxeo.template.context.extensions.AuditExtensionFactory\" name=\"auditEntries\">\n    </contextFactory>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "Adds Repository features in the context\n      <ul>\n    <li>core.getParent()</li>\n    <li>core.getChildren()</li>\n</ul>\n",
              "documentationHtml": "<p>\nAdds Repository features in the context\n</p><ul><li>core.getParent()</li><li>core.getChildren()</li></ul>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--contextExtension",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--contextExtension2",
              "id": "org.nuxeo.template.service.defaultContrib--contextExtension2",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"contextExtension\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>Adds Repository features in the context\n      <ul>\n        <li>core.getParent()</li>\n        <li>core.getChildren()</li>\n      </ul>\n    </documentation>\n\n    <contextFactory class=\"org.nuxeo.template.context.extensions.CoreExtensionFactory\" name=\"core\">\n    </contextFactory>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "Adds outputFormat for the following mime type\n      <ul>\n    <li>pdf</li>\n    <li>odt</li>\n    <li>doc</li>\n    <li>docx</li>\n</ul>\n",
              "documentationHtml": "<p>\nAdds outputFormat for the following mime type\n</p><ul><li>pdf</li><li>odt</li><li>doc</li><li>docx</li></ul>",
              "extensionPoint": "org.nuxeo.template.service.TemplateProcessorComponent--outputFormat",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib/Contributions/org.nuxeo.template.service.defaultContrib--outputFormat",
              "id": "org.nuxeo.template.service.defaultContrib--outputFormat",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.service.TemplateProcessorComponent",
                "name": "org.nuxeo.template.service.TemplateProcessorComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"outputFormat\" target=\"org.nuxeo.template.service.TemplateProcessorComponent\">\n\n    <documentation>Adds outputFormat for the following mime type\n      <ul>\n        <li>pdf</li>\n        <li>odt</li>\n        <li>doc</li>\n        <li>docx</li>\n      </ul>\n    </documentation>\n\n    <outputFormat id=\"pdf\" label=\"PDF\" mimetype=\"application/pdf\"/>\n    <outputFormat id=\"odt\" label=\"ODT\" mimetype=\"application/vnd.oasis.opendocument.text\"/>\n    <outputFormat id=\"doc\" label=\"DOC\" mimetype=\"application/msword\"/>\n    <outputFormat id=\"docx\" label=\"DOCX\" mimetype=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.service.defaultContrib",
          "name": "org.nuxeo.template.service.defaultContrib",
          "requirements": [],
          "resolutionOrder": 865,
          "services": [],
          "startOrder": 747,
          "version": "2023.13.9",
          "xmlFileContent": "<component\n  name=\"org.nuxeo.template.service.defaultContrib\">\n\n  <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"processor\">\n\n    <documentation>Freemarker based template processor</documentation>\n\n    <templateProcessor name=\"Freemarker\" label=\"Raw Freemarker\" default=\"false\" class=\"org.nuxeo.template.processors.fm.FreeMarkerProcessor\">\n      <supportedMimeType>text/x-freemarker</supportedMimeType>\n      <supportedExtension>ftl</supportedExtension>\n    </templateProcessor>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"processor\">\n\n    <documentation>XSLT template processor</documentation>\n\n    <templateProcessor name=\"XSLTProcessor\" label=\"Raw XSLT Processor\" default=\"false\" class=\"org.nuxeo.template.processors.xslt.XSLTProcessor\">\n      <supportedMimeType>text/xml</supportedMimeType>\n      <supportedExtension>xml</supportedExtension>\n      <supportedExtension>xsl</supportedExtension>\n      <supportedExtension>xslt</supportedExtension>\n    </templateProcessor>\n\n  </extension>\n\n <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"processor\">\n\n    <documentation>Identity processor</documentation>\n\n    <templateProcessor name=\"Identity\" label=\"Identity\" default=\"false\" class=\"org.nuxeo.template.processors.IdentityProcessor\">\n    </templateProcessor>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"contextExtension\">\n\n    <documentation>\n      Adds utility functions in the context\n      <ul>\n        <li>functions.getVocabularyTranslatedLabel(vocname, key, lang)</li>\n        <li>functions.getVocabularyLabel(vocname, key)</li>\n        <li>functions.getVocabularyLabel(vocname, key)</li>\n        <li>functions.formatDate(calendar)</li>\n        <li>functions.formatDateTime(calendar)</li>\n        <li>functions.formatTime(calendar)</li>\n        <li>functions.getNuxeoPrincipal(username)</li>\n      </ul>\n    </documentation>\n\n    <contextFactory name=\"functions\" class=\"org.nuxeo.template.context.extensions.FunctionsExtensionFactory\">\n     <aliasName>fn</aliasName>\n     <aliasName>Fn</aliasName>\n    </contextFactory>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"contextExtension\">\n\n    <documentation>Adds audit infos in the context\n      <ul>\n        <li>auditEntries</li>\n      </ul>\n    </documentation>\n\n    <contextFactory name=\"auditEntries\" class=\"org.nuxeo.template.context.extensions.AuditExtensionFactory\">\n    </contextFactory>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"contextExtension\">\n\n    <documentation>Adds Repository features in the context\n      <ul>\n        <li>core.getParent()</li>\n        <li>core.getChildren()</li>\n      </ul>\n    </documentation>\n\n    <contextFactory name=\"core\" class=\"org.nuxeo.template.context.extensions.CoreExtensionFactory\">\n    </contextFactory>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.template.service.TemplateProcessorComponent\" point=\"outputFormat\">\n\n    <documentation>Adds outputFormat for the following mime type\n      <ul>\n        <li>pdf</li>\n        <li>odt</li>\n        <li>doc</li>\n        <li>docx</li>\n      </ul>\n    </documentation>\n\n    <outputFormat id=\"pdf\" label=\"PDF\" mimetype=\"application/pdf\"/>\n    <outputFormat id=\"odt\" label=\"ODT\" mimetype=\"application/vnd.oasis.opendocument.text\"/>\n    <outputFormat id=\"doc\" label=\"DOC\" mimetype=\"application/msword\"/>\n    <outputFormat id=\"docx\" label=\"DOCX\" mimetype=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"/>\n  </extension>\n\n </component>",
          "xmlFileName": "/OSGI-INF/templateprocessor-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.adapterContrib/Contributions/org.nuxeo.platform.TemplateSources.adapterContrib--adapters",
              "id": "org.nuxeo.platform.TemplateSources.adapterContrib--adapters",
              "registrationOrder": 29,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentAdapterService",
                "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\">\n\n    <adapter class=\"org.nuxeo.template.api.adapters.TemplateBasedDocument\" factory=\"org.nuxeo.template.adapters.TemplateAdapterFactory\"/>\n\n    <adapter class=\"org.nuxeo.template.api.adapters.TemplateSourceDocument\" factory=\"org.nuxeo.template.adapters.TemplateAdapterFactory\"/>\n\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.adapterContrib",
          "name": "org.nuxeo.platform.TemplateSources.adapterContrib",
          "requirements": [],
          "resolutionOrder": 866,
          "services": [],
          "startOrder": 688,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.platform.TemplateSources.adapterContrib\">\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\"\n    point=\"adapters\">\n\n    <adapter\n      class=\"org.nuxeo.template.api.adapters.TemplateBasedDocument\" factory=\"org.nuxeo.template.adapters.TemplateAdapterFactory\" />\n\n    <adapter\n      class=\"org.nuxeo.template.api.adapters.TemplateSourceDocument\" factory=\"org.nuxeo.template.adapters.TemplateAdapterFactory\" />\n\n\n  </extension>\n\n</component>",
          "xmlFileName": "/OSGI-INF/adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.listener/Contributions/org.nuxeo.platform.TemplateSources.listener--listener",
              "id": "org.nuxeo.platform.TemplateSources.listener--listener",
              "registrationOrder": 49,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.template.listeners.TemplateInitListener\" name=\"documenttemplate-init\" postCommit=\"false\" priority=\"500\">\n      <event>aboutToCreate</event>\n      <event>beforeDocumentModification</event>\n    </listener>\n\n    <listener async=\"false\" class=\"org.nuxeo.template.listeners.TemplateDeletionGuard\" name=\"documenttemplate-deletionguard\" postCommit=\"false\" priority=\"500\">\n      <event>aboutToRemove</event>\n    </listener>\n\n    <listener async=\"true\" class=\"org.nuxeo.template.listeners.TemplateTypeBindingListener\" name=\"documenttemplate-type-binding\" postCommit=\"true\" priority=\"500\">\n      <event>documentCreated</event>\n      <event>documentModified</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.listener",
          "name": "org.nuxeo.platform.TemplateSources.listener",
          "requirements": [],
          "resolutionOrder": 867,
          "services": [],
          "startOrder": 694,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.listener\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"documenttemplate-init\" async=\"false\"\n      postCommit=\"false\" priority=\"500\"\n      class=\"org.nuxeo.template.listeners.TemplateInitListener\">\n      <event>aboutToCreate</event>\n      <event>beforeDocumentModification</event>\n    </listener>\n\n    <listener name=\"documenttemplate-deletionguard\" async=\"false\"\n      postCommit=\"false\" priority=\"500\"\n      class=\"org.nuxeo.template.listeners.TemplateDeletionGuard\">\n      <event>aboutToRemove</event>\n    </listener>\n\n    <listener name=\"documenttemplate-type-binding\" async=\"true\" postCommit=\"true\" priority=\"500\"\n      class=\"org.nuxeo.template.listeners.TemplateTypeBindingListener\">\n      <event>documentCreated</event>\n      <event>documentModified</event>\n    </listener>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/listener-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.convert.service.ConversionServiceImpl--converter",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.ecm.platform.templates.convert.plugins/Contributions/org.nuxeo.ecm.platform.templates.convert.plugins--converter",
              "id": "org.nuxeo.ecm.platform.templates.convert.plugins--converter",
              "registrationOrder": 9,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.convert.service.ConversionServiceImpl",
                "name": "org.nuxeo.ecm.core.convert.service.ConversionServiceImpl",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"converter\" target=\"org.nuxeo.ecm.core.convert.service.ConversionServiceImpl\">\n\n   <converter class=\"org.nuxeo.ecm.platform.convert.plugins.LibreOfficeConverter\" name=\"any2odt\">\n      <destinationMimeType>application/vnd.oasis.opendocument.text</destinationMimeType>\n\n      <sourceMimeType>text/x-web-markdown</sourceMimeType>\n      <sourceMimeType>text/xml</sourceMimeType>\n      <sourceMimeType>text/html</sourceMimeType>\n      <sourceMimeType>text/plain</sourceMimeType>\n      <sourceMimeType>text/rtf</sourceMimeType>\n\n      <!-- Microsoft office documents -->\n      <sourceMimeType>application/msword</sourceMimeType>\n\n      <!-- Microsoft office 2007 documents -->\n      <sourceMimeType>\n        application/vnd.openxmlformats-officedocument.wordprocessingml.document\n      </sourceMimeType>\n\n      <!-- OpenOffice.org 1.x documents -->\n      <sourceMimeType>application/vnd.sun.xml.writer</sourceMimeType>\n      <sourceMimeType>application/vnd.sun.xml.writer.template</sourceMimeType>\n\n      <!-- OpenOffice.org 2.x documents -->\n      <sourceMimeType>application/vnd.oasis.opendocument.text</sourceMimeType>\n      <sourceMimeType>\n        application/vnd.oasis.opendocument.text-template\n      </sourceMimeType>\n\n      <!-- WordPerfect -->\n      <sourceMimeType>application/wordperfect</sourceMimeType>\n\n      <parameters>\n        <parameter name=\"CommandLineName\">soffice</parameter>\n        <parameter name=\"format\">odt</parameter>\n      </parameters>\n   </converter>\n\n   <converter class=\"org.nuxeo.ecm.platform.convert.plugins.LibreOfficeConverter\" name=\"any2docx\">\n\n      <destinationMimeType>application/vnd.openxmlformats-officedocument.wordprocessingml.document</destinationMimeType>\n\n      <sourceMimeType>text/xml</sourceMimeType>\n      <sourceMimeType>text/html</sourceMimeType>\n      <sourceMimeType>text/plain</sourceMimeType>\n      <sourceMimeType>text/rtf</sourceMimeType>\n\n      <!-- Microsoft office documents -->\n      <sourceMimeType>application/msword</sourceMimeType>\n\n      <!-- Microsoft office 2007 documents -->\n      <sourceMimeType>\n        application/vnd.openxmlformats-officedocument.wordprocessingml.document\n      </sourceMimeType>\n\n      <!-- OpenOffice.org 1.x documents -->\n      <sourceMimeType>application/vnd.sun.xml.writer</sourceMimeType>\n      <sourceMimeType>application/vnd.sun.xml.writer.template</sourceMimeType>\n\n      <!-- OpenOffice.org 2.x documents -->\n      <sourceMimeType>application/vnd.oasis.opendocument.text</sourceMimeType>\n      <sourceMimeType>\n        application/vnd.oasis.opendocument.text-template\n      </sourceMimeType>\n\n      <!-- WordPerfect -->\n      <sourceMimeType>application/wordperfect</sourceMimeType>\n\n      <parameters>\n        <parameter name=\"CommandLineName\">soffice</parameter>\n        <parameter name=\"format\">docx</parameter>\n      </parameters>\n   </converter>\n\n   <converter class=\"org.nuxeo.ecm.platform.convert.plugins.LibreOfficeConverter\" name=\"any2doc\">\n\n      <destinationMimeType>application/msword</destinationMimeType>\n\n      <sourceMimeType>text/xml</sourceMimeType>\n      <sourceMimeType>text/html</sourceMimeType>\n      <sourceMimeType>text/plain</sourceMimeType>\n      <sourceMimeType>text/rtf</sourceMimeType>\n\n      <!-- Microsoft office documents -->\n      <sourceMimeType>application/msword</sourceMimeType>\n\n      <!-- Microsoft office 2007 documents -->\n      <sourceMimeType>\n        application/vnd.openxmlformats-officedocument.wordprocessingml.document\n      </sourceMimeType>\n\n      <!-- OpenOffice.org 1.x documents -->\n      <sourceMimeType>application/vnd.sun.xml.writer</sourceMimeType>\n      <sourceMimeType>application/vnd.sun.xml.writer.template</sourceMimeType>\n\n      <!-- OpenOffice.org 2.x documents -->\n      <sourceMimeType>application/vnd.oasis.opendocument.text</sourceMimeType>\n      <sourceMimeType>\n        application/vnd.oasis.opendocument.text-template\n      </sourceMimeType>\n\n      <!-- WordPerfect -->\n      <sourceMimeType>application/wordperfect</sourceMimeType>\n\n      <parameters>\n        <parameter name=\"CommandLineName\">soffice</parameter>\n        <parameter name=\"format\">doc</parameter>\n      </parameters>\n   </converter>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.ecm.platform.templates.convert.plugins",
          "name": "org.nuxeo.ecm.platform.templates.convert.plugins",
          "requirements": [
            "org.nuxeo.ecm.platform.convert.plugins"
          ],
          "resolutionOrder": 868,
          "services": [],
          "startOrder": 498,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.templates.convert.plugins\">\n\n  <require>org.nuxeo.ecm.platform.convert.plugins</require>\n\n  <extension target=\"org.nuxeo.ecm.core.convert.service.ConversionServiceImpl\"\n    point=\"converter\">\n\n   <converter name=\"any2odt\" class=\"org.nuxeo.ecm.platform.convert.plugins.LibreOfficeConverter\">\n      <destinationMimeType>application/vnd.oasis.opendocument.text</destinationMimeType>\n\n      <sourceMimeType>text/x-web-markdown</sourceMimeType>\n      <sourceMimeType>text/xml</sourceMimeType>\n      <sourceMimeType>text/html</sourceMimeType>\n      <sourceMimeType>text/plain</sourceMimeType>\n      <sourceMimeType>text/rtf</sourceMimeType>\n\n      <!-- Microsoft office documents -->\n      <sourceMimeType>application/msword</sourceMimeType>\n\n      <!-- Microsoft office 2007 documents -->\n      <sourceMimeType>\n        application/vnd.openxmlformats-officedocument.wordprocessingml.document\n      </sourceMimeType>\n\n      <!-- OpenOffice.org 1.x documents -->\n      <sourceMimeType>application/vnd.sun.xml.writer</sourceMimeType>\n      <sourceMimeType>application/vnd.sun.xml.writer.template</sourceMimeType>\n\n      <!-- OpenOffice.org 2.x documents -->\n      <sourceMimeType>application/vnd.oasis.opendocument.text</sourceMimeType>\n      <sourceMimeType>\n        application/vnd.oasis.opendocument.text-template\n      </sourceMimeType>\n\n      <!-- WordPerfect -->\n      <sourceMimeType>application/wordperfect</sourceMimeType>\n\n      <parameters>\n        <parameter name=\"CommandLineName\">soffice</parameter>\n        <parameter name=\"format\">odt</parameter>\n      </parameters>\n   </converter>\n\n   <converter name=\"any2docx\" class=\"org.nuxeo.ecm.platform.convert.plugins.LibreOfficeConverter\">\n\n      <destinationMimeType>application/vnd.openxmlformats-officedocument.wordprocessingml.document</destinationMimeType>\n\n      <sourceMimeType>text/xml</sourceMimeType>\n      <sourceMimeType>text/html</sourceMimeType>\n      <sourceMimeType>text/plain</sourceMimeType>\n      <sourceMimeType>text/rtf</sourceMimeType>\n\n      <!-- Microsoft office documents -->\n      <sourceMimeType>application/msword</sourceMimeType>\n\n      <!-- Microsoft office 2007 documents -->\n      <sourceMimeType>\n        application/vnd.openxmlformats-officedocument.wordprocessingml.document\n      </sourceMimeType>\n\n      <!-- OpenOffice.org 1.x documents -->\n      <sourceMimeType>application/vnd.sun.xml.writer</sourceMimeType>\n      <sourceMimeType>application/vnd.sun.xml.writer.template</sourceMimeType>\n\n      <!-- OpenOffice.org 2.x documents -->\n      <sourceMimeType>application/vnd.oasis.opendocument.text</sourceMimeType>\n      <sourceMimeType>\n        application/vnd.oasis.opendocument.text-template\n      </sourceMimeType>\n\n      <!-- WordPerfect -->\n      <sourceMimeType>application/wordperfect</sourceMimeType>\n\n      <parameters>\n        <parameter name=\"CommandLineName\">soffice</parameter>\n        <parameter name=\"format\">docx</parameter>\n      </parameters>\n   </converter>\n\n   <converter name=\"any2doc\" class=\"org.nuxeo.ecm.platform.convert.plugins.LibreOfficeConverter\">\n\n      <destinationMimeType>application/msword</destinationMimeType>\n\n      <sourceMimeType>text/xml</sourceMimeType>\n      <sourceMimeType>text/html</sourceMimeType>\n      <sourceMimeType>text/plain</sourceMimeType>\n      <sourceMimeType>text/rtf</sourceMimeType>\n\n      <!-- Microsoft office documents -->\n      <sourceMimeType>application/msword</sourceMimeType>\n\n      <!-- Microsoft office 2007 documents -->\n      <sourceMimeType>\n        application/vnd.openxmlformats-officedocument.wordprocessingml.document\n      </sourceMimeType>\n\n      <!-- OpenOffice.org 1.x documents -->\n      <sourceMimeType>application/vnd.sun.xml.writer</sourceMimeType>\n      <sourceMimeType>application/vnd.sun.xml.writer.template</sourceMimeType>\n\n      <!-- OpenOffice.org 2.x documents -->\n      <sourceMimeType>application/vnd.oasis.opendocument.text</sourceMimeType>\n      <sourceMimeType>\n        application/vnd.oasis.opendocument.text-template\n      </sourceMimeType>\n\n      <!-- WordPerfect -->\n      <sourceMimeType>application/wordperfect</sourceMimeType>\n\n      <parameters>\n        <parameter name=\"CommandLineName\">soffice</parameter>\n        <parameter name=\"format\">doc</parameter>\n      </parameters>\n   </converter>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/convert-service-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.mimetype.service.MimetypeRegistryService--mimetype",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.mimetype/Contributions/org.nuxeo.platform.TemplateSources.mimetype--mimetype",
              "id": "org.nuxeo.platform.TemplateSources.mimetype--mimetype",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.mimetype.service.MimetypeRegistryService",
                "name": "org.nuxeo.ecm.platform.mimetype.service.MimetypeRegistryService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"mimetype\" target=\"org.nuxeo.ecm.platform.mimetype.service.MimetypeRegistryService\">\n\n\t\t<mimetype binary=\"false\" iconPath=\"text.png\" normalized=\"text/x-freemarker\">\n\t\t\t<mimetypes>\n\t\t\t\t<mimetype>text/x-freemarker</mimetype>\n\t\t\t</mimetypes>\n\t\t\t<extensions>\n\t\t\t\t<extension>ftl</extension>\n\t\t\t</extensions>\n\t\t</mimetype>\n\t</extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.mimetype",
          "name": "org.nuxeo.platform.TemplateSources.mimetype",
          "requirements": [],
          "resolutionOrder": 869,
          "services": [],
          "startOrder": 695,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component\n\tname=\"org.nuxeo.platform.TemplateSources.mimetype\">\n\n\t<extension\n\t\ttarget=\"org.nuxeo.ecm.platform.mimetype.service.MimetypeRegistryService\"\n\t\tpoint=\"mimetype\">\n\n\t\t<mimetype normalized=\"text/x-freemarker\" binary=\"false\" iconPath=\"text.png\">\n\t\t\t<mimetypes>\n\t\t\t\t<mimetype>text/x-freemarker</mimetype>\n\t\t\t</mimetypes>\n\t\t\t<extensions>\n\t\t\t\t<extension>ftl</extension>\n\t\t\t</extensions>\n\t\t</mimetype>\n\t</extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/mimetype-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitions",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.rendition.contrib/Contributions/org.nuxeo.platform.TemplateSources.rendition.contrib--renditionDefinitions",
              "id": "org.nuxeo.platform.TemplateSources.rendition.contrib--renditionDefinitions",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"renditionDefinitions\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n    <renditionDefinition class=\"org.nuxeo.template.rendition.TemplateBasedRenditionProvider\" enabled=\"true\" name=\"delivery\">\n      <icon>/icons/delivery.png</icon>\n      <label>label.rendition.delivery</label>\n    </renditionDefinition>\n    <renditionDefinition class=\"org.nuxeo.template.rendition.TemplateBasedRenditionProvider\" enabled=\"true\" name=\"webView\">\n      <icon>/icons/htmlView.png</icon>\n      <label>label.rendition.webView</label>\n    </renditionDefinition>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.rendition.contrib",
          "name": "org.nuxeo.platform.TemplateSources.rendition.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.rendition.contrib"
          ],
          "resolutionOrder": 870,
          "services": [],
          "startOrder": 698,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.rendition.contrib\">\n\n  <require>org.nuxeo.ecm.platform.rendition.contrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"renditionDefinitions\">\n    <renditionDefinition name=\"delivery\" enabled=\"true\" class=\"org.nuxeo.template.rendition.TemplateBasedRenditionProvider\">\n      <icon>/icons/delivery.png</icon>\n      <label>label.rendition.delivery</label>\n    </renditionDefinition>\n    <renditionDefinition name=\"webView\" enabled=\"true\" class=\"org.nuxeo.template.rendition.TemplateBasedRenditionProvider\">\n      <icon>/icons/htmlView.png</icon>\n      <label>label.rendition.webView</label>\n    </renditionDefinition>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n  Contribute Operation to encapsulate TemplateProcessor rendering features\n  @author Tiry (tdelprat@nuxeo.com)\n",
          "documentationHtml": "<p>\nContribute Operation to encapsulate TemplateProcessor rendering features\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.operations/Contributions/org.nuxeo.platform.TemplateSources.operations--operations",
              "id": "org.nuxeo.platform.TemplateSources.operations--operations",
              "registrationOrder": 36,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <operation class=\"org.nuxeo.template.automation.RenderWithTemplateOperation\"/>\n    <operation class=\"org.nuxeo.template.automation.DetachTemplateOperation\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.automation.scripting.internals.AutomationScriptingComponent--operation",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.operations/Contributions/org.nuxeo.platform.TemplateSources.operations--operation",
              "id": "org.nuxeo.platform.TemplateSources.operations--operation",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.automation.scripting.internals.AutomationScriptingComponent",
                "name": "org.nuxeo.automation.scripting.internals.AutomationScriptingComponent",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"operation\" target=\"org.nuxeo.automation.scripting.internals.AutomationScriptingComponent\">\n\n    <scriptedOperation id=\"javascript.FilterTemplatesByType\">\n      <inputType>document</inputType>\n      <outputType>documents</outputType>\n      <category>javascript</category>\n      <description>Filter templates according to the type of a given input document.</description>\n      <script><![CDATA[\n        function run(input, params) {\n          return Repository.Query(null, {\n            'query': 'select * from Document where ecm:mixinType = \"Template\" AND ecm:isTrashed = 0 AND tmpl:applicableTypes IN ( \"all\", \"' + input['type'] + '\") AND ecm:isVersion = 0'\n          });\n        }\n      ]]></script>\n    </scriptedOperation>\n\n    <scriptedOperation id=\"javascript.RenderPdf\">\n      <inputType>document</inputType>\n      <outputType>blob</outputType>\n      <category>javascript</category>\n      <param name=\"templateName\" type=\"string\"/>\n      <param name=\"attach\" type=\"boolean\"/>\n      <param name=\"templateData\" type=\"string\"/>\n      <description>Render a document with a given template and converts it to PDF.</description>\n      <script><![CDATA[\n        function run(input, params) {\n          var blob = TemplateProcessor.Render(input, {\n            'templateName': params.templateName,\n            'attach': params.attach || false,\n            'templateData': params.templateData || null\n          });\n          return Blob.RunConverter(blob, {'converter': 'any2pdf'});\n        }\n      ]]></script>\n    </scriptedOperation>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.operations",
          "name": "org.nuxeo.platform.TemplateSources.operations",
          "requirements": [],
          "resolutionOrder": 871,
          "services": [],
          "startOrder": 696,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.operations\" version=\"1.0\">\n\n  <documentation>\n  Contribute Operation to encapsulate TemplateProcessor rendering features\n  @author Tiry (tdelprat@nuxeo.com)</documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"operations\">\n\n    <operation\n      class=\"org.nuxeo.template.automation.RenderWithTemplateOperation\" />\n    <operation\n      class=\"org.nuxeo.template.automation.DetachTemplateOperation\" />\n\n  </extension>\n\n  <extension target=\"org.nuxeo.automation.scripting.internals.AutomationScriptingComponent\" point=\"operation\">\n\n    <scriptedOperation id=\"javascript.FilterTemplatesByType\">\n      <inputType>document</inputType>\n      <outputType>documents</outputType>\n      <category>javascript</category>\n      <description>Filter templates according to the type of a given input document.</description>\n      <script><![CDATA[\n        function run(input, params) {\n          return Repository.Query(null, {\n            'query': 'select * from Document where ecm:mixinType = \"Template\" AND ecm:isTrashed = 0 AND tmpl:applicableTypes IN ( \"all\", \"' + input['type'] + '\") AND ecm:isVersion = 0'\n          });\n        }\n      ]]></script>\n    </scriptedOperation>\n\n    <scriptedOperation id=\"javascript.RenderPdf\">\n      <inputType>document</inputType>\n      <outputType>blob</outputType>\n      <category>javascript</category>\n      <param name=\"templateName\" type=\"string\"/>\n      <param name=\"attach\" type=\"boolean\"/>\n      <param name=\"templateData\" type=\"string\"/>\n      <description>Render a document with a given template and converts it to PDF.</description>\n      <script><![CDATA[\n        function run(input, params) {\n          var blob = TemplateProcessor.Render(input, {\n            'templateName': params.templateName,\n            'attach': params.attach || false,\n            'templateData': params.templateData || null\n          });\n          return Blob.RunConverter(blob, {'converter': 'any2pdf'});\n        }\n      ]]></script>\n    </scriptedOperation>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.pageproviders/Contributions/org.nuxeo.platform.TemplateSources.pageproviders--providers",
              "id": "org.nuxeo.platform.TemplateSources.pageproviders--providers",
              "registrationOrder": 33,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <coreQueryPageProvider name=\"template_based\">\n      <pattern escapeParameters=\"true\" quoteParameters=\"false\">\n        SELECT * FROM Document WHERE ecm:mixinType = 'TemplateBased' AND\n        ecm:isTrashed = 0 AND\n        nxts:bindings/*/templateId IN (?) AND ecm:isVersion = ?\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.platform.TemplateSources.pageproviders",
          "name": "org.nuxeo.platform.TemplateSources.pageproviders",
          "requirements": [],
          "resolutionOrder": 872,
          "services": [],
          "startOrder": 697,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.platform.TemplateSources.pageproviders\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n             point=\"providers\">\n\n    <coreQueryPageProvider name=\"template_based\">\n      <pattern escapeParameters=\"true\" quoteParameters=\"false\">\n        SELECT * FROM Document WHERE ecm:mixinType = 'TemplateBased' AND\n        ecm:isTrashed = 0 AND\n        nxts:bindings/*/templateId IN (?) AND ecm:isVersion = ?\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/pageprovider-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.template.serializer.service.TemplateSerializerServiceImpl",
          "documentationHtml": "",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.template.serializer.service.TemplateSerializerService",
              "descriptors": [
                "org.nuxeo.template.serializer.service.SerializerDescriptor"
              ],
              "documentation": "Contribute a new Serializer that can be use by the TemplateProcessor.Render operation\n",
              "documentationHtml": "<p>\nContribute a new Serializer that can be use by the TemplateProcessor.Render operation</p>",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.serializer.service.TemplateSerializerService/ExtensionPoints/org.nuxeo.template.serializer.service.TemplateSerializerService--serializers",
              "id": "org.nuxeo.template.serializer.service.TemplateSerializerService--serializers",
              "label": "serializers (org.nuxeo.template.serializer.service.TemplateSerializerService)",
              "name": "serializers",
              "version": "2023.13.9"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.serializer.service.TemplateSerializerService",
          "name": "org.nuxeo.template.serializer.service.TemplateSerializerService",
          "requirements": [],
          "resolutionOrder": 873,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.template.serializer.service.TemplateSerializerService",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.serializer.service.TemplateSerializerService/Services/org.nuxeo.template.serializer.service.TemplateSerializerService",
              "id": "org.nuxeo.template.serializer.service.TemplateSerializerService",
              "overriden": false,
              "version": "2023.13.9"
            }
          ],
          "startOrder": 932,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.template.serializer.service.TemplateSerializerService\">\n\n  <implementation class=\"org.nuxeo.template.serializer.service.TemplateSerializerServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.template.serializer.service.TemplateSerializerService\" />\n  </service>\n\n  <extension-point name=\"serializers\">\n    <documentation>Contribute a new Serializer that can be use by the TemplateProcessor.Render operation</documentation>\n    <object class=\"org.nuxeo.template.serializer.service.SerializerDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/serializer-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.template.serializer.service.TemplateSerializerService--serializers",
              "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.serializer.SerializerService.default.contribution/Contributions/org.nuxeo.template.serializer.SerializerService.default.contribution--serializers",
              "id": "org.nuxeo.template.serializer.SerializerService.default.contribution--serializers",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.template.serializer.service.TemplateSerializerService",
                "name": "org.nuxeo.template.serializer.service.TemplateSerializerService",
                "type": "service"
              },
              "version": "2023.13.9",
              "xml": "<extension point=\"serializers\" target=\"org.nuxeo.template.serializer.service.TemplateSerializerService\">\n    <serializer class=\"org.nuxeo.template.serializer.executors.XMLTemplateSerializer\" name=\"default\"/>\n    <serializer class=\"org.nuxeo.template.serializer.executors.XMLTemplateSerializer\" name=\"xml\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager/org.nuxeo.template.serializer.SerializerService.default.contribution",
          "name": "org.nuxeo.template.serializer.SerializerService.default.contribution",
          "requirements": [],
          "resolutionOrder": 874,
          "services": [],
          "startOrder": 746,
          "version": "2023.13.9",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.template.serializer.SerializerService.default.contribution\">\n\n  <extension target=\"org.nuxeo.template.serializer.service.TemplateSerializerService\" point=\"serializers\">\n    <serializer name=\"default\" class=\"org.nuxeo.template.serializer.executors.XMLTemplateSerializer\" />\n    <serializer name=\"xml\" class=\"org.nuxeo.template.serializer.executors.XMLTemplateSerializer\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/serializer-service-contribution.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-template-rendering-core-2023.13.9.jar",
      "groupId": "org.nuxeo.template.rendering",
      "hierarchyPath": "/grp:org.nuxeo.template.rendering/grp:org.nuxeo.template/org.nuxeo.template.manager",
      "id": "org.nuxeo.template.manager",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven 3.9.6\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.11\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo ECM Document template Manager\r\nBundle-SymbolicName: org.nuxeo.template.manager;singleton:=true\r\nNuxeo-Component: OSGI-INF/core-types-contrib.xml,OSGI-INF/types-contrib.\r\n xml,OSGI-INF/life-cycle-contrib.xml,OSGI-INF/templateprocessor-service.\r\n xml,OSGI-INF/templateprocessor-contrib.xml,OSGI-INF/adapter-contrib.xml\r\n ,OSGI-INF/listener-contrib.xml,OSGI-INF/convert-service-contrib.xml,OSG\r\n I-INF/mimetype-contrib.xml,OSGI-INF/rendition-contrib.xml,OSGI-INF/oper\r\n ations-contrib.xml,OSGI-INF/pageprovider-contrib.xml,OSGI-INF/serialize\r\n r-service.xml,OSGI-INF/serializer-service-contribution.xml\r\n\r\n",
      "maxResolutionOrder": 874,
      "minResolutionOrder": 861,
      "packages": [
        "nuxeo-template-rendering"
      ],
      "parentReadme": {
        "blobProviderId": "default",
        "content": "\n# Nuxeo Template Rendering\n\n## About Nuxeo Template Rendering\n The Nuxeo Template Rendering is a set of plugins that provides a way to associate a Nuxeo Document with a Template. The Templates are used to render the associated document. Depending on the Template type, a different Template Processor will be used and the resulting rendering can be :\n\n   * an HTML document\n   * an XML document\n   * an OpenOffice document\n   * an MS Office document\n\n\nEach template processor has his own logic for rendering a Document from a Template :\n\n   * raw processing (FreeMarker or XSLT)\n   * merge fields replacement (MS Office / OpenOffice)\n\nThis project is an on-going project, supported by Nuxeo.\n\n## Sub-modules organization\nThe project is splitted in several sub modules :\n\n**nuxeo-template-rendering-api**\n\nAPI module containing all interfaces.\n\n**nuxeo-template-rendering-core**\n\nComponent, extension points and service implementation. This modules only contains template processors for FreeMarker and XSLT.\n\n**nuxeo-template-rendering-jsf**\n\nContribute UI level extensions: Layouts, Widgets, Views, Url bindings ...\n\n**nuxeo-template-rendering-xdocreport**\n\nContribute the OpenOffice / DocX processor based on XDocReport. This is by far the most powerfull processor.\nSee: http://code.google.com/p/xdocreport/\n\n**nuxeo-template-rendering-jxls**\n\nContribute a template processor for XLS files based on JXLS project. See: http://jxls.sourceforge.net/\n\n**nuxeo-template-rendering-jod**\n\nContribute JOD Report based template processor for ODT files. This renderer is historical and replaced by xdocreport that is more powerful.\n\n**nuxeo-template-rendering-jaxrs**\n\nContribute a JAXRS simple API as well as a new WebTemplate doc type that is based on a Note rather than a file.\n\n**nuxeo-template-rendering-sandbox**\n\nMisc code and extensions that are currently experimental.\n\n**nuxeo-template-rendering-package**\n\nBuilder for marketplace package.\n\n## Building\n\n### How to build Nuxeo Template Rendering\nBuild the Nuxeo Template Rendering add-on with Maven:\n\n```mvn clean install```\n\n## Deploying\nNuxeo Template Rendering is available as a package add-on [from the Nuxeo Marketplace] (https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-template-rendering)\n\n## Resources\n### Documentation\nThe documentation for Nuxeo Template Rendering is available in our Documentation Center: http://doc.nuxeo.com/x/9YSo\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes a Template Rendering component: https://jira.nuxeo.com/browse/NXP/component/11405\n\nYou can report issues on: http://answers.nuxeo.com/\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
        "digest": "e9e176463318c286d8f00955de4c43a2",
        "encoding": "UTF-8",
        "length": 3344,
        "mimeType": "text/plain",
        "name": "ReadMe.md"
      },
      "readme": {
        "blobProviderId": "default",
        "content": "This modules contains the implementation of nuxexo-template-rendering module.\n\nMain objects are\n\n## TemplateProcessorComponent\n\nRuntime Component used to handle Extension Points and expose the TemplateProcessorService interface\n(interface that is used to manipulate TemplateProcessors and associated documents).\n\n## Default TemplateProcessor implementation\n\n - FreeMarker TemplateProcessor : FreeMarkerProcessor\n - XSLT based TemplateProcessor : XSLTProcessor\n\n## TemplateBasedDocumentAdapterImpl\n\nDefault implementation of the DocumentModel adapter for interface TemplateBasedDocument\n(a DocumentModel that is bound to one or more templates)\n\n## TemplateSourceDocumentAdapterImpl\n\nDefault implementation of the DocumentModel adapter for interface TemplateSourceDocument\n(a DocumentModel that can provide a template)\n\n## TemplateBasedRenditionProvider\n\nProvides Rendition based on the template system.\n\n## Automation Operation\n\nAutomation Operations to wrapp TemplateProcessorService.\n",
        "digest": "80854b4d9e7e00496aa7934037da0b8b",
        "encoding": "UTF-8",
        "length": 985,
        "mimeType": "text/plain",
        "name": "ReadMe.md"
      },
      "requirements": [],
      "version": "2023.13.9"
    }
  ],
  "creationDate": 1718010958166,
  "key": "Nuxeo Platform-2023.13",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.platform.TemplateSources.operations",
      "description": "Detach a template from all its bound documents.",
      "hierarchyPath": "/op:TemplateProcessor.Detach",
      "label": "Detach a template",
      "name": "TemplateProcessor.Detach",
      "operationClass": "org.nuxeo.template.automation.DetachTemplateOperation",
      "params": [],
      "signature": [
        "document",
        "void"
      ],
      "url": "TemplateProcessor.Detach",
      "version": "2023.13.9"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.platform.TemplateSources.operations",
      "description": "Render the target document with the associated template if any. Returns the rendered Blob or the main Blob if no template is associated to the document.",
      "hierarchyPath": "/op:TemplateProcessor.Render",
      "label": "Render with template",
      "name": "TemplateProcessor.Render",
      "operationClass": "org.nuxeo.template.automation.RenderWithTemplateOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "attach",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "save",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "serializer",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "store",
          "order": 0,
          "type": "boolean",
          "values": [
            "false"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "templateData",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "templateName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "blob"
      ],
      "url": "TemplateProcessor.Render",
      "version": "2023.13.9"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "javascript",
      "contributingComponent": "org.nuxeo.platform.TemplateSources.operations",
      "description": "Filter templates according to the type of a given input document.",
      "hierarchyPath": "/op:javascript.FilterTemplatesByType",
      "label": "javascript.FilterTemplatesByType",
      "name": "javascript.FilterTemplatesByType",
      "operationClass": "org.nuxeo.automation.scripting.internals.ScriptingOperationImpl",
      "params": [],
      "signature": [
        "document",
        "documents"
      ],
      "url": "javascript.FilterTemplatesByType",
      "version": "2023.13.9"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "javascript",
      "contributingComponent": "org.nuxeo.platform.TemplateSources.operations",
      "description": "Render a document with a given template and converts it to PDF.",
      "hierarchyPath": "/op:javascript.RenderPdf",
      "label": "javascript.RenderPdf",
      "name": "javascript.RenderPdf",
      "operationClass": "org.nuxeo.automation.scripting.internals.ScriptingOperationImpl",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "templateName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "attach",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "templateData",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "blob"
      ],
      "url": "javascript.RenderPdf",
      "version": "2023.13.9"
    }
  ],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.template.manager.api",
        "org.nuxeo.template.manager",
        "org.nuxeo.template.manager.jaxrs",
        "org.nuxeo.template.manager.jxls",
        "org.nuxeo.template.manager.xdocreport"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-template-rendering-2023.13.9",
      "id": "nuxeo-template-rendering-2023.13.9",
      "name": "nuxeo-template-rendering",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Template Rendering",
      "version": "2023.13.9"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1718010958166,
  "version": "2023.13"
}